Today, it is common to store media items such as pictures and music files on a variety of personal electronic devices. For example, many users store such information on mobile phones, Personal Digital Assistants (PDAs), laptops and desktop computers. Often it is useful to have the same files stored on multiple devices, and it is preferable that the information or metadata associated with each file is current and synchronized across all devices on which the files are stored. A user that stores, for example, an image on more than one device would like to avoid entering or updating the same image caption information on each device. Typically, metadata includes data about the media item itself, and may be automatically derived from the context of the item, such as a file type or creation date, or may be data added manually by a user. For example, an image's metadata may include the location where the image was captured, date, time, information about people in the picture, or tags added manually by the user, such as a caption or title. Conflict situations arise with such metadata when the media content stored on various devices does not change, but the metadata associated with the media content is altered in one or more of the repositories. In this scenario, different versions of metadata for the same media item can exist across repositories. Thus, it is desirable to synchronize metadata of media items located on different devices.
Various standards exist for storing metadata. Many third-party media management applications use their own internal databases to store this information. In addition, embedded metadata standards exist that provide the ability to store metadata within media files themselves, such as the IPTC (International Press Telecommunications Council) and EXIF (exchangeable image file format) standards for image files. IPTC and EXIF standards provide pre-defined fields in media file headers where different types of metadata can be stored, including, but not limited to: date, description, rating and caption.
Another emerging standard that facilitates media and metadata sharing is the Universal Plug and Play standard (UPnP). UPnP allows for different devices to interact seamlessly, and provides a foundation for handling content such as music, images, and videos in a local network. UPnP further enables such content to be accessed from various devices in a network, without regard for where the media is actually stored, and enables content and metadata transfer and/or rendering under the command of any control device in a network. UPnP devices, for example, can serve as media servers, providing storage of media content and metadata; media renderers, enabling viewing of media content; and can provide control point functionality, controlling the media interaction between servers and renderers.
One important element of a media server is the Content Directory Service (CDS). CDS acts as a database to store the metadata of content so that the content can be easily queried and browsed from various control points in the network. CDS implements tree-like structures to support various types of content (music, images, videos, albums, playlists) with all the nodes providing their own metadata fields to describe the item. For images, this metadata includes the same kind of data about media items that IPTC and EXIF metadata contains, and also many UPnP specific fields and vendor extendable fields. Applications implementing UPnP control point functionality may access CDS located anywhere in home network.
The synchronization of this kind of metadata, however, is difficult because replicas of metadata may exist in multiple devices and/or repositories. Metadata may be altered in one repository independently of all other repositories on which it resides, making the time relation of the changes hard to determine during an attempted synchronization. Determining the time relation of changes in metadata fields would require metadata about metadata, namely, timestamps telling when changes to metadata were made. This requires additional storage space to hold the second set of metadata on each device, in order to make it available for use during synchronization. To implement such a solution, it is also required that each individual device, regardless of platform, have application logic to allow it to capture and store the additional metadata information—which is often an unattainable requirement.
There is a need in the art for a system and method which can reduce storage requirements and application/logic requirements on the individual devices themselves and, at the same time, enable metadata changes to be propagated correctly from one device to another to ensure that each device contains the most current metadata information about its media files. There is further a need to implement a metadata memory management system for streamlining conflict resolution during synchronization.